import os

from app import db, app, modles


def start(path):
    """
    :param path: db path
    """
    # 判断: 数据库是否创建(todo 应用安装)
    has_db = os.path.exists(path)

    if not has_db:
        db.create_all()
        add_preset_data()


def add_preset_data():
    """添加预设数据
    """
    # 添加一个管理员
    user = modles.User(username='root', nickname='管理员')
    user.set_password(os.getenv('root_passwd','123456'))
    db.session.add(user)

    websites = [
        {'id': 1, 'name': '代码分享小工具', 'url': 'http://c2qr.com', 'remark': '漂亮的格式化分享一段代码',
         'create_user': 'dev', 'sort_id': 1},
        {'id': 2, 'name': '文字互传', 'url': 'http://kuparty.com/put', 'remark': '电脑和手机上的文字互相传输',
         'create_user': 'dev', 'sort_id': 1},
    ]

    sorts = [
        {'id': 1, 'name': '小工具'},
        {'id': 2, 'name': '博客'},
        {'id': 3, 'name': '资源'},
    ]

    for item in websites:
        website = modles.Website(name=item['name'], url=item['url'], remark=item['remark'],
                                 create_user=item['create_user'], sort_id=item['sort_id'])
        db.session.add(website)
    for item in sorts:
        sort = modles.WebsiteSort(name=item['name'])
        db.session.add(sort)

    db.session.add(
        modles.Website(name='美团技术团队', url='https://tech.meituan.com', remark='', create_user='xm', sort_id=2))
    db.session.add(modles.Website(name='凹凸实验室', url='https://aotu.io/', remark='', create_user='xm', sort_id=2))
    db.session.add(
        modles.Website(name='有赞技术团队', url='https://tech.youzan.com', remark='', create_user='xm', sort_id=2))
    db.session.add(
        modles.Website(name='字节跳动技术团队', url='https://blog.csdn.net/ByteDanceTech', remark='', create_user='xm',
                       sort_id=2))

    db.session.add(
        modles.Website(name='我爱电子书', url='https://www.52doc.com', remark='注重体验与质量的电子书资源下载网站', create_user='xm',
                       sort_id=3))

    # db.session.add(modles.Dict(id=1000, parent_id=1, name='摘录类型', dict_code='extractType'))
    # db.session.add(modles.Dict(id=1001, parent_id=1000, name='逻辑定律', value=1))
    # db.session.add(modles.Dict(id=1002, parent_id=1000, name='渣男语录', value=2))
    # db.session.add(modles.Dict(id=1002, parent_id=1000, name='渣女语录', value=3))

    db.session.add(modles.Extract(title='峰终定律', content='<p>指如果在一段体验的高峰和结尾，体验是愉悦的，那么对整个体验的感受就是愉悦的。</p><p>比如五一长假, 虽然前一周要上6天班,但是一想到后面有五天假就很开心</p>', type_id=1001))
    db.session.add(modles.Extract(title='马太效应', content='<p>一种强者愈强、弱者愈弱的现象, 富的更富、穷的更穷. </p><p>一种两极分化的社会现象</p>', type_id=1001))
    db.session.add(modles.Extract(title='马斯洛需求', content='<p>马斯洛（1943年）指出，人们需要动力实现某些需要，有些需求优先于其他需求。</p><p>马斯洛的需求层次结构是心理学中的激励理论，包括人类需求的五级模型，通常被描绘成金字塔内的等级。</p><p>从层次结构的底部向上，需求分别为：生理（食物和衣服），安全（工作保障），社交需要（友谊），尊重和自我实现</p>', type_id=1001))
    db.session.add(modles.Extract(title='幸存者偏差', content='<p>幸存者偏差指的是当取得资讯的渠道，仅来自于幸存者时，此资讯可能会与实际情况存在偏差。</p><p>幸存者偏差，是由优胜劣汰之后自然选择出的一个道理：未幸存者已无法发声。人们只看到经过某种筛选而产生的结果，而没有意识到筛选的过程，因此忽略了被筛选掉的关键信息。</p><p></p>', type_id=1001))
    db.session.add(modles.Extract(title='锚定偏差', content='<p>锚定偏差（anchoring bias）指的是决策时严重依赖第一个可用的信息。</p><p>比如，你走进一家体育用品商店，发现的第一件商品，是一条价值500美元的运动裤。接着，你看到另一条价格为300美元的运动裤时，就会觉得它很便宜，实际上如果首先看到这条300美元的裤子，你会觉得它根本不便宜</p>', type_id=1001))
    db.session.add(modles.Extract(title='反身性', content='<p>简而言之，就是相互决定性。</p><p>在数学上，一个元素等价于自己，称为它具有反身性。因为这个元素是怎样的，就决定了它的等价元素是怎样的。</p><p>在语言学上的反身代词是指：两个指代同一事物的词，因为它们具有相互决定性。</p>', type_id=1001))
    db.session.add(modles.Extract(title='羊群效应', content='<p>羊群效应理论（The Effect of Sheep Flock），也称羊群行为（Herd Behavior）、从众心理。</p><p>经济学里经常用“羊群效应”来描述经济个体的从众跟风心理。“羊群效应”就是比喻人都有一种从众心理，从众心理很容易导致盲从，而盲从往往会陷入骗局或遭到失败。</p>', type_id=1001))
    db.session.add(modles.Extract(title='XY问题', content='<p>你想做X，但你认为Y是实现X最好的方法。你不问关于X的事，反而问起Y的事。</p><p>XY问题是指，当你需要做X时，你认为可以用Y来实现X，于是你问如何做Y，而你实际应该做的是说明你的X问题是什么。也许会有一个比Y更好的Z解决方案，但如果X没有被说出来，没有人能提出更好的建议。</p>', type_id=1001))
    db.session.add(modles.Extract(title='破窗效应', content='<p>此理论认为环境中的不良现象如果被放任存在，会诱使人们仿效，甚至变本加厉。</p><p>以一幢有少许破窗的建筑为例，如果那些窗不被修理好，可能将会有破坏者破坏更多的窗户</p>', type_id=1001))
    db.session.add(modles.Extract(title='凡勃伦效应', content='<p>凡勃伦效应是指消费者对一种商品需求的程度因其标价较高而不是较低而增加。</p><p>它反映了人们进行挥霍性消费的心理愿望。</p>', type_id=1001))
    db.session.add(modles.Extract(title='死海效应', content='<p>好员工像死海的水一样蒸发掉，然后死海盐度就变得很高，正常生物不容易存活。</p><p>公司发展到一定阶段，能力强的员工容易离职，因为对公司内愚蠢的行为的容忍度不高，也容易找到好工作；能力差的员工倾向于留着不走，也不太好找工作，年头久了就变中高层了。</p>', type_id=1001))

    db.session.add(modles.Extract(title='渣男语录', content='若能避开猛烈的欢喜，自然不会有悲痛来袭', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='我玩了六年英雄联盟，后来才发现你才是我的英雄', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='她只是找我聊天，没有别的', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='我下次不会这样了，原谅我吧', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='你喜欢大海，我爱过你', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='我跟她只是好朋友', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='你要这么想我也没办法', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='你自己去打了吧', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='她很特别，和你不一样', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='对不起，我还是爱你的', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='你先给我打2000，情人节礼物明年给宝贝补上', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='她只是我的朋友，我不能有女性朋友吗', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='我们是睡过，但我对她没感情，我爱的是你', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='现在谈恋爱这么严格吗，竟然还要求单身', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='是她主动勾引我的，我对她一点感觉都没有', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='别闹了，你以前不是这样的', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='我喜欢你，但我不想谈恋爱', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='你一个人也可以，但她没有我不行', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='你又怎么了，你现在怎么这么爱生气', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='你自己回去吧，我就不送你了', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='我不是渣男，只是忘记分手了', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='我只是最后心碎了很多片 每一片都爱上了不同的人', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='原谅我好吗，我已经把她删了', type_id=1002))
    db.session.add(modles.Extract(title='渣男语录', content='我喜欢你，但是我想跟她在一起', type_id=1002))

    db.session.add(modles.Extract(title='渣女语录', content='我只是爱一个人，其他都是喜欢', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='只要对象换的快，没有悲伤只有爱', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='我不是渣女我只是心怀天下想给每个男孩幸福', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='欢迎哥哥踏上爱我这条不归路', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='处多点对象怎么了？我打字快又不是聊不过来', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='喜欢你一个人太累 所以我要喜欢十个', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='你是我见一个爱一个里最爱的', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='我说过爱你可没说过只爱你', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='难道喜欢你就不能喜欢别人了吗', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='我和他只是普通朋友我当然最喜欢你', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='靓仔千千万 不行咱就换', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='想泡我可以 先磕个头', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='她们都很迷人 我不一样我磨人', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='哥哥 我只是嘴甜 心里没你', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='绿你怎么了？我其他男人都没说什么就你屁事多', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='我是喜欢你 但我心里也有他', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='没有想绿任何人，只是忘了说分手', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='我心里有他不耽误我爱你呀', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='今晚我也是别人的宝贝', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='动心就是你的不对了', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='我也不想怎么样，就想列表里有个他', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='等他帮我还完这个月的花呗就分手', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='哪怕我和别人谈了我还爱你', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='你是个好人，但你配不上我', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='我不喜欢你 只是喜欢被你喜欢的感觉', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='我生孩子已经这么疼了，你就不要在乎孩子是谁的了', type_id=1002))
    db.session.add(modles.Extract(title='渣女语录', content='我心里有你 但不止有你', type_id=1002))

    db.session.commit()
